// 上面这个代码处理过度动画（默认加上不用管）
document.addEventListener('DOMContentLoaded', () => {
  setTimeout(() => {
    document.body.classList.add('sidenav-pinned')
    document.body.classList.add('ready')
  }, 200)
})

// 创建bootstrap弹窗
let toastBox = document.querySelector('#myToast')
const toast = new bootstrap.Toast(toastBox, {
  animate: true,
  autohide: true,
  delay: 2000
})

// 封装函数 show弹出提示框 
const show = msg => {
  // alert('用户名注册规则不合法，请输入2-30位')
  document.querySelector('.toast-body').innerHTML = msg
  // 让toast显示出来
  toast.show()
}

// 配置基地址
axios.defaults.baseURL = `http://ajax-api.itheima.net`

// 请求拦截器，只要发送任何请求 都会被这个拦截
axios.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么 config 配置对象
  /* 
   除了 登录和注册两个接口 不需要身份验证 其他的接口都需要验证
   发送 ajax 请求之前 只有 本地存储里面有 token 表示用户登陆了 其他的请求 需要携带Authorization 请求头
  */
//  console.log(config);
  const token = localStorage.getItem('CMS85')
  if (token) {
    config.headers.Authorization = token
  }
  return config
}, function (error) {
  return Promise.reject(error)
})

// 添加响应拦截器
/* 
  服务器响应数据 成功 走第一个函数
  成功 可以将数据 脱壳 登录和注册的 成功的响应都需要修改

  服务器响应数据 失败 走第二个回调函数
  token过期 在想要获取数据 同样会报401的错误 模拟token过期 找到本地存储 修改token值
  解决：
    1.需要跳转到登录页面，让用户重新登录
    2.清空本地存储里面的数据


*/
axios.interceptors.response.use(function (response) {
  // 对响应数据做点什么  response相当于.then()里面的内容
  return response.data
}, function (error) {
  // 对响应错误做点什么
  if(error.response.status===401){
    location.href='./login.html'
    localStorage.clear()
  }
  return Promise.reject(error);
});

/* 
  退出功能
    1. 获取 退出dom元素 注册点击事件
    2. 需要给用户 展示 提示对话框 confirm()
    3. 需要跳转 登录页面 清空 本地存储
*/





